using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using ShootThemUp.Sources.ScreenManagement;

namespace ShootThemUp.Sources.PlayerInputs
{

    /// <summary>
    /// This class is useful to know the player inputs, like the player movements, his attacks ...
    /// It's abstract because the inputs depend of the platform used.
    /// </summary>
    public interface PlayerInput
    {
        #region Abstracts Methods

        /// <summary>
        /// Speeds of the player ship, in function of the specified time elapsed.
        /// </summary>
        /// <returns>The new speed of the player, depending of the player inputs.</returns>
        Vector2 Speed();

        /// <summary>
        /// Determines if the player is shooting.
        /// </summary>
        /// <returns>
        ///   <c>true</c> if the player is shooting; otherwise, <c>false</c>.
        /// </returns>
        bool IsShooting();

        /// <summary>
        /// Determines if the player is swaping his weapon.
        /// </summary>
        /// <returns> <c>true</c> if the player swaping his weapon; otherwise, <c>false</c>. </returns>
        bool SwappingWeapon(InputState input);

        #endregion
    }
}
